package com.ztgf.order.models.dto;

import com.baomidou.mybatisplus.annotations.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.ztgf.common.annotations.CustomerBigDecimalSerialize;
import com.ztgf.common.dto.BaseDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 订单商品表DTO
 *
 * @author chenyu.wang
 * @Date 2020-06-03 15:55:40
 */
@Data
@TableName("order_commodity_relation")
@ApiModel(value = "订单商品表对象", description = "订单商品表对象")
public class OrderCommodityRelationDTO extends BaseDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "订单id")
    private Long orderId;
    @ApiModelProperty(value = "商品id")
    private Long commodityId;
    @ApiModelProperty(value = "商品名字")
    private String commodityName;
    @ApiModelProperty(value = "规格属性id 以逗号隔开")
    private String atrrId;
    @ApiModelProperty(value = "单商品价格")
    private BigDecimal price;
    @ApiModelProperty(value = "商品数量")
    private Integer num;
    @ApiModelProperty(value = "总商品金额")
    private BigDecimal moeny;
    @ApiModelProperty(value = "总优惠金额")
    private BigDecimal discountMoney;
    @ApiModelProperty(value = "总实付金额")
    private BigDecimal actualMoney;
    @ApiModelProperty(value = "单商品实付金额")
    private BigDecimal singleActualMoney;
    @ApiModelProperty(value = "改价部分 单商品的优惠价格")
    private BigDecimal singleCommodityDiscountChangePrice;
    @ApiModelProperty(value = "批发数量")
    private Integer wholesaleNum;
    @ApiModelProperty(value = "批发价格")
    private BigDecimal wholesalePrice;
    @ApiModelProperty(value = "折扣方式 0不享受，1批发、2会员")
    private Integer discountType;
    @ApiModelProperty(value = "税率 除以100")
    private Integer taxRate;
    @ApiModelProperty(value = "卖家改价金额")
    private BigDecimal changePrice;
    @ApiModelProperty(value = "商品单位名称")
    private String unitName;
    @ApiModelProperty(value = "商品品牌名称")
    private String brandName;
    @ApiModelProperty(value = "规格属性/套餐名称")
    private String attrName;
    @ApiModelProperty(value = "佣金比例")
    private BigDecimal commissionRate;
    @ApiModelProperty(value = "总商品佣金金额")
    private BigDecimal commissionMoney;
    @ApiModelProperty(value = "单商品佣金金额")
    private BigDecimal singleCommissionMoney;
    @ApiModelProperty(value = "质保期")
    private Integer warrantyMonth;
    @ApiModelProperty(value = "是否申请售后，0否，1是")
    private Integer isView;
    @ApiModelProperty(value = "是否改价，0否，1是")
    private Integer isChangePrice;
    @ApiModelProperty(value = "商品分类id")
    private Long commodityCategoryId;
    @ApiModelProperty(value = "发货时间")
    private Integer sendDays;
    @ApiModelProperty(value = "已经退货的数量")
    private Integer returnCommodityNum;
    @ApiModelProperty(value = "已经退款的金额")
    private BigDecimal returnCommodityMoney;
    @ApiModelProperty(value = "备注")
    private String remark;
    @ApiModelProperty(value = "卖家改价后优惠金额")
    private BigDecimal changeDiscountPrice;
    @ApiModelProperty(value = "批发/会员优惠金额")
    private BigDecimal otherDiscountPrice;
    @ApiModelProperty(value = "备货时间")
    private Integer stockDays;
    @ApiModelProperty(value = "询盘商品类型")
    private Integer purchaseCommodityType;
    @ApiModelProperty(value = "询盘商品报价表id")
    private Long purchaseCommodityBargainId;
    @ApiModelProperty(value = "询盘商品砍价服务费")
    private BigDecimal purchaseFeeMoneyScalePrice;
    @ApiModelProperty(value = "询盘商品砍价状态 0未申请，1申请中、2申请成功、3申请失败、4平台已协商")
    private Integer platBargainStatus;
    @ApiModelProperty(value = "同步平台开票技术服务费：0未同步，1已同步")
    private Integer synchronizationShopSysInvoiceType;
    @ApiModelProperty(value = "询盘订单主办人名称")
    private String organiserUserName;
    @ApiModelProperty(value = "询盘信息表id")
    private Long purchaseInfoId;
    @ApiModelProperty(value = "询盘商品砍价报名费")
    @JsonSerialize(using = CustomerBigDecimalSerialize.class)
    private BigDecimal purchaseFeeMoney;
    @ApiModelProperty(value = "商品砍价成功后的已退款服务费")
    private BigDecimal purchaseFeeMoneyScaleBackPrice;
}